In a read only memory (ROM) in the past, from the viewpoint of easiness in manufacturing or the like, ROM data is realized by presence or absence of contacts in a single layer. Because of easiness in changing the ROM data, contacts in higher metal wiring layers are used as much as possible and ‘0’ and ‘1’ of the ROM data are represented by presence or absence of contacts between metal layers.
For example, Japanese Patent Application Laid-Open No. 2003-67254 discloses a method of, to improve certainty of data readout protect for a ROM, reading out stored information from a region starting with an input address and having input length in the ROM, comparing the stored information with input information, and releasing the data readout protect for the ROM when the stored information and the input information coincide with each other.
However, in the ROM in the past, because the ROM data is realized by presence or absence of contacts in the single layer, the ROM data is relatively easily decoded by physically analyzing alignment of the contacts in the single layer. Therefore, the method is vulnerable in terms of security of the ROM chip.